﻿<?php
/**
 * Classe MAPPER da tabela TB_UNIDADE_SAUDE
 * 
 * @author			Mário R. Castro
 * @copyright		Voitech Sistema
 * @package			SEMAS
 * @subpackage		semas.application.models
 * @version			1.0
*/
class App_Model_UnidadeSaudeMapper extends Voitech_Mapper{

    public function __construct(App_Model_UnidadeSaude $obUnidadeSaude){
        $this->obModel = $obUnidadeSaude;
    }    
    
    public function buscarPorId() {}
    
    public function carregar(stdClass $obRow) {
        $this->obModel->setCoUnidadeSaude($obRow->co_unidade_saude);
        $this->obModel->setNoUnidadeSaude($obRow->no_unidade_saude);
        $this->obModel->setNoEndereco($obRow->no_endereco_unidade_saude);
        $this->obModel->setNoComplemento($obRow->no_complemento_unidade_saude);
        $this->obModel->setNoBairro($obRow->no_bairro_unidade_saude);
        $this->obModel->setCoCidade($obRow->co_cidade_unidade_saude);
        $this->obModel->setSgUf($obRow->sg_uf_unidade_saude);
        
        $obPessoa = new App_Model_Pessoa();
        $obPessoa->setCoPessoa($obRow->co_pessoa);
        $obPessoa->setNoPessoa($obRow->no_pessoa);
        $this->obModel->setObPessoa($obPessoa);    
        
        $obParamCidade = new App_Model_ParamCidade();
        $obParamCidade->setCoCidade($obRow->co_cidade_unidade_saude);
        $obParamCidade->setNoCidade($obRow->no_cidade);
        $obParamCidade->setObParamUf(new App_Model_ParamUf($obRow->sg_uf_unidade_saude));
        $this->obModel->setObParamCidade($obParamCidade);         

        $obTipoUnidadeSaude = new App_Model_TipoUnidadeSaude();
        $obTipoUnidadeSaude->setCoTipoUnidadeSaude($obRow->co_tipo_unidade_saude);
        $obTipoUnidadeSaude->setNoTipoUnidadeSaude($obRow->no_tipo_unidade_saude);
        $this->obModel->setObTipoUnidade($obTipoUnidadeSaude);          
        
        $this->obModel->setStStatus($obRow->st_status);
        $this->obModel->setFlagExcluir($obRow->fl_excluir);
        $this->obModel->setDtCadastro($obRow->dt_cadastro_unidade_saude);
        return $this;
    }
    
    public function cadastrar() {}
	
    public function alterar() {}

    public function retornarArrayPopulado() {
        $arPopulado = array();
        return $arPopulado;
    }

    public function ativar() {
        if($this->obModel->getCoUnidadeSaude() == ''){
            throw new Voitech_Exception('Falta cod. Unidade Saude');
        }
        $arrUpdate = array('st_ativo'=>'S');       
        return App_Model_Db_UnidadeSaude::build()->update($arrUpdate,App_Model_Db_UnidadeSaude::build()->getAdapter()
                                                                                            ->quoteInto('co_unidade_saude = ?',$this->obModel->getCoUnidadeSaude()));                
    }
    
    public function desativar() {
        if($this->obModel->getCoUnidadeSaude() == ''){
            throw new Voitech_Exception('Falta cod. Unidade Saude');
        }
        $arrUpdate = array('st_ativo'=>'N');
        return App_Model_Db_UnidadeSaude::build()->update($arrUpdate
                                                   ,App_Model_Db_UnidadeSaude::build()->getAdapter()
                                                                                ->quoteInto('co_unidade_saude = ?',$this->obModel->getCoUnidadeSaude()));                
    }
      
    public function excluir() {
        if($this->obModel->getCoUnidadeSaude() == ''){
            throw new Voitech_Exception('Falta cod. Unidade aude');
        }
        return App_Model_Db_UnidadeSaude::build()->delete(App_Model_Db_UnidadeSaude::build()->getAdapter()->quoteInto('co_unidade_saude = ?',$this->obModel->getCoUnidadeSaude()));                
    }
	
}